home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Applications / SML⁄NJ 93+ / Documentation / examples / cat.sml next >
Encoding:
Text File  |  1995-12-30  |  648 b   |  20 lines  |  [TEXT/R*ch]

  1. datatype limit = Unbounded | Limited of int
  2.  
  3. fun cat Unbounded (instream,outstream) =
  4.     while not (end_of_stream instream) do
  5.       outputc outstream (inputc instream (can_input instream))
  6.   | cat (Limited limit) (instream,outstream) =
  7.     while not (end_of_stream instream) do
  8.       outputc outstream (inputc instream (min(can_input instream,limit)))
  9.       
  10. val ucat = cat Unbounded
  11. val lcat = cat(Limited 1024)
  12.  
  13. fun cat1 (instream,outstream) =
  14.     while not (end_of_stream instream) do
  15.       outputc outstream (inputc instream 1)
  16.  
  17. fun filecat cat = fn (fin,fout) => cat(open_in fin,open_out fout)
  18. fun screencat cat = fn fin => cat(open_in fin,std_out)
  19.  
  20.